package main

import (
	"errors"
	"fmt"
	"time"
)

func panicErrorLoad() {
	panic(errors.New("出问题了"))
}

func main() {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(err)
		}
	}()
	fmt.Println("main开始执行")
	//在子协程中抛出的异常，在父协程中无法捕获
	go func() {
		panicErrorLoad()
	}()
	//子协程产生了异常，导致整个程序中断退出。
	//因此最后一行代码不会执行
	time.Sleep(1 * time.Second)
	fmt.Println("main结束执行")
}
